package com.oracle.rentcar.interceptor;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Objects;

/*拦截器类*/
public class LoginInterceptor extends HandlerInterceptorAdapter {

    /**
     * 在请求控制器方法前执行
     * @param request
     * @param response
     * @param handler 处理器对象
     * @return 返回true,继续向下执行，返回false,不能向下执行
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
        throws IOException {

        System.out.println("拦截器拦截。。。。。。。。");

        HttpSession session = request.getSession();

        // 在会话对象中获得当前登录用户
        Object currentEmp = session.getAttribute("current_emp");

        if(Objects.isNull(currentEmp)){   // 判断currentEmp对象是否为空
            response.sendRedirect("/system/to_login");  // 跳转到登陆页

            return false;  // 不能向下执行
        }

        return true;  // 向下执行控制器
    }
}
